﻿@page "/news"

<Seo Canonical="/news" Title="Blazorise News" Description="Read latest news about the Blazorise UI controls, Megabit company details, releases, bug fixes, and more." />

<NewsPageTitle>
    Blazorise News
</NewsPageTitle>

<Row>
    <Column ColumnSize="ColumnSize.Is8.OnDesktop">
        <BlogCategorySelect Categories="@NewsEntries.Select( x => x.Category ).Distinct()" @bind-SelectedCategory="@selectedCategory" />
    </Column>
    <Column ColumnSize="ColumnSize.Is4.OnDesktop" Margin="Margin.Is3.FromBottom">
        <TextEdit Placeholder="Search..." @bind-Text="@search" />
    </Column>
</Row>

@if ( !IsCustomSearch )
{
    <Row>
        <Column ColumnSize="ColumnSize.Is8.OnDesktop">
            @{
                var pinnedNews = NewsEntries.FirstOrDefault( x => x.Pinned );

                if ( pinnedNews != null )
                {
                    <Card Margin="Margin.Is4.FromBottom" Shadow="Shadow.Default" Border="Border.Is0">
                        <CardImage Source="@pinnedNews.Image" Alt="News post image"></CardImage>
                        <CardBody Padding="Padding.Is0.FromBottom">
                            <CardTitle>
                                @if ( pinnedNews.Url != null )
                                {
                                    <Blazorise.Link To="@pinnedNews.Url" Stretched>
                                        @pinnedNews.Text
                                    </Blazorise.Link>
                                }
                            </CardTitle>
                        </CardBody>
                        <CardBody Padding="Padding.Is0.OnY">
                            <NewsPagePostInfo UserName="@pinnedNews.AuthorName" ImageName="@pinnedNews.AuthorImage" PostedOn="@pinnedNews.PostedOn" Read="@pinnedNews.ReadTime" />
                        </CardBody>
                    </Card>
                }
            }
        </Column>
        <Column ColumnSize="ColumnSize.Is4.OnDesktop">
            <NewsletterWidget />

            <LatestNewsEntries NewsEntries="@NewsEntries" />
        </Column>
    </Row>
}

<NewsPageEntries Year="2022">
    @foreach ( var item in NewsEntries.Where( x => ( ( selectedCategory == "All" || !string.IsNullOrEmpty( search ) ) || x.Category == selectedCategory ) && ( x.Text.Contains( search ?? string.Empty, StringComparison.InvariantCultureIgnoreCase ) || x.Description.Contains( search ?? string.Empty, StringComparison.InvariantCultureIgnoreCase ) ) ) )
    {
        <NewsPageEntriesItem @key="@item" To="@item.Url" ToText="@item.Text" ImageSource="@item.Image" AuthorName="@item.AuthorName" AuthorImage="@item.AuthorImage" PostedOn="@item.PostedOn" ReadTime="@item.ReadTime">
            @item.Description
        </NewsPageEntriesItem>
    }
</NewsPageEntries>

@code {
    bool IsCustomSearch => selectedCategory != "All" || !string.IsNullOrEmpty( search );

    string search = "";
    string selectedCategory = "All";

    List<BlogEntry> NewsEntries = new List<BlogEntry>
    {
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/153", Text = "Maintenance release: Blazorise 1.5.3", Description = "It's been a while, but we're excited to bring you the latest version of Blazorise! In version...", Image = "img/news/150/v153.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "June 3rd, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/160", Text = "Announcing Blazorise 1.5", Description = "Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise...", Image = "img/news/empty.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "July 15th, 2024", ReadTime = "9 min", Pinned = true },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/152", Text = "Maintenance release: Blazorise 1.5.2", Description = "The latest update to Blazorise focuses on enhancing the developer experience by delivering key...", Image = "img/news/150/v152.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "April 22nd, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/151", Text = "Maintenance release: Blazorise 1.5.1", Description = "The latest maintenance update for Blazorise is dedicated to enhancing the development experience...", Image = "img/news/150/v151.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "March 27th, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/150", Text = "Announcing Blazorise 1.5", Description = "Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise...", Image = "img/news/150/v150.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "March 18th, 2024", ReadTime = "9 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/143", Text = "Maintenance release: Blazorise 1.4.3", Description = "We're excited to announce the release of Blazorise version 1.4.3. This update includes critical...", Image = "img/news/140/v143.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "March 13th, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/142", Text = "Maintenance release: Blazorise 1.4.2", Description = "We are excited to announce the release of Blazorise 1.4.2. This version focuses on enhancing...", Image = "img/news/140/v142.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "January 29h, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/141", Text = "Maintenance release: Blazorise 1.4.1", Description = "We are pleased to announce the release of version 1.4.1, which includes important bug...", Image = "img/news/140/v141.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "January 16th, 2024", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/134", Text = "Maintenance release: Blazorise 1.3.4", Description = "This maintenance release focuses on enhancing the overall stability and performance of...", Image = "img/news/130/v134.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "December 18th, 2023", ReadTime = "3 min" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/140", Text = "Announcing Blazorise 1.4", Description = "Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise...", Image = "img/news/140/v140.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "December 8th", ReadTime = "9 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/133", Text = "Maintenance release: Blazorise 1.3.3", Description = "We are pleased to announce the release of Blazorise 1.3.3. This maintenance release focuses...", Image = "img/news/130/v133.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "November 15th, 2023", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/132", Text = "Maintenance release: Blazorise 1.3.2", Description = "Blazorise, your go-to component library for Blazor, has just released a maintenance update...", Image = "img/news/130/v132.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "October 18th, 2023", ReadTime = "3 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/131", Text = "Maintenance release: Blazorise 1.3.1", Description = "We hope you’ve been having a great experience building with Blazorise 1.3. Today, we’re...", Image = "img/news/130/v131.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/130", Text = "Announcing Blazorise 1.3", Description = "Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise...", Image = "img/news/130/v130.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "August 16th", ReadTime = "11 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/125", Text = "Maintenance release: Blazorise 1.2.5", Description = "Welcome to the maintenance release of Blazorise v1.2.5! This release includes a number...", Image = "img/news/120/v125.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/124", Text = "Maintenance release: Blazorise 1.2.4", Description = "Welcome to the maintenance release of Blazorise v1.2.4! This release includes a number...", Image = "img/news/120/v124.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Changes", Url = "news/2023-changes-to-blazorise-plans-and-licensing", Text = "Changes to Blazorise Plans and Licensing", Description = "We are writing this post to provide an important update on...", Image = "img/news/2023-blazorise-plans-change.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "June 6th", ReadTime = "4 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/123", Text = "Maintenance release: Blazorise 1.2.3", Description = "We're super excited to share with you the latest maintenance release for Blazorise: version 1.2.3...", Image = "img/news/120/v123.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/122", Text = "Maintenance release: Blazorise 1.2.2", Description = "It’s been a while since our last stable release! And this is not the long anticipated 1.3, nor 2.0, but simply....", Image = "img/news/120/v122.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/121", Text = "Maintenance release: Blazorise 1.2.1", Description = "With the main release 1.2.0, several small errors occurred during the development process....", Image = "img/news/120/v121.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/117", Text = "Maintenance release: Blazorise 1.1.7", Description = "With the successful launch of 1.2, we're shifting our focus to the support branch. This maintenance release addresses...", Image = "img/news/110/v117.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/120", Text = "Announcing Blazorise 1.2", Description = "We have some exciting news to share with you today! As part of our ongoing efforts to improve and enhance...", Image = "img/news/120/v120.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "February 1st, 2023", ReadTime = "7 min" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/116", Text = "Maintenance release: Blazorise 1.1.6", Description = "We are excited to announce the release of Blazorise v1.1.6, the first maintenance update in the new 2023 year...", Image = "img/news/110/v116.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/115", Text = "Maintenance release: Blazorise 1.1.5", Description = "A new maintenance release is now available to the general public. This release fixes some nasty bugs...", Image = "img/news/110/v115.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/114", Text = "Maintenance release: Blazorise 1.1.4", Description = "We released Blazorise 1.1 just a few monght ago, and like any release, there are few rough edges to iron out which...", Image = "img/news/110/v114.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/113", Text = "Maintenance release: Blazorise 1.1.3", Description = "This Blazorise version was supposed to be just a minor maintenance release. Instead, we got a few relatively large features...", Image = "img/news/110/v113.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/112", Text = "Maintenance release: Blazorise 1.1.2", Description = "We released Blazorise 1.1.1 just a few days ago with a small array of bug fixes, but those nasty bugs are always lurking.", Image = "img/news/110/v112.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/107", Text = "Maintenance release: Blazorise 1.0.7", Description = "In parallel to our work on the upcoming feature releases Blazorise 1.2 and our already released 1.1, we backport important fixes...", Image = "img/news/100/v107.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/111", Text = "Maintenance release: Blazorise 1.1.1", Description = "In parallel to our work on the upcoming feature releases Blazorise 1.2 and our already released 1.1, we backport important fixes...", Image = "img/news/110/v111.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },

        new BlogEntry { Category = "Major releases", Url = "news/release-notes/110", Text = "Announcing Blazorise 1.1", Description = "It took us way too long, but finally, after six months of hard work, Blazorise 1.1 is out and comes packed with...", Image = "img/news/110/v110.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/106", Text = "Maintenance release: Blazorise 1.0.6", Description = "Another update for our 1.0 Blazorise is now available. Many improvements are included in this release...", Image = "img/news/100/v106.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/105", Text = "Maintenance release: Blazorise 1.0.5", Description = "Another update for our 1.0 Blazorise is now available. Many improvements are included in this release...", Image = "img/news/100/v105.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/104", Text = "Maintenance release: Blazorise 1.0.4", Description = "In parallel to our work on the upcoming feature releases Blazorise 1.1, we regularly backport important fixes to the stable 1.0 branch...", Image = "img/news/100/v104.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/103", Text = "Maintenance release: Blazorise 1.0.3", Description = "Support for Blazorise v1.0.x is still going strong, and in this release, we're bringing more fixes and stability improvements.", Image = "img/news/100/v103.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/102", Text = "Maintenance release: Blazorise 1.0.2", Description = "In this update, we're bringing many fixes for the v1.0 release. One of the most significant problems..", Image = "img/news/100/v102.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/101", Text = "Maintenance release: Blazorise 1.0.1", Description = "I guess no big release can escape from some unintentional bugs.", Image = "img/news/100/v101.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-7", Text = "Seventh update for the 0.9.5", Description = "Just a small release to fix an issue on TimePicker component.", Image = "img/news/095/v095-7.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/100", Text = "Announcing Blazorise 1.0", Description = "Today, we are happy to announce the release of Blazorise 1.0.0. In this post, we’re covering a lot of the new Blazorise features...", Image = "img/news/100/v100.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },

        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-6", Text = "Sixth update for the 0.9.5", Description = "We got busy working on the final <Code>v1.0</Code>, but the current version is still getting some love.", Image = "img/news/095/v095-6.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-5", Text = "Fifth update for the 0.9.5", Description = "This update fixes a nasty bug on DatePicker that incorrectly showed the weekdays...", Image = "img/news/095/v095-5.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-4", Text = "Fourth update for the 0.9.5", Description = "This update fixes a nasty bug on DatePicker that incorrectly showed the weekdays...", Image = "img/news/095/v095-4.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Changes", Url = "news/announcing-2022-blazorise-plans-and-pricing-updates", Text = "Announcing 2022 Blazorise Plans and Pricing Updates", Description = "When Blazorise first launched in 2018 as an open-source project...", Image = "img/news/blazorise-plans-change.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-3", Text = "Third update for the 0.9.5", Description = "The new update fixes most of the problems on the DataGrid component...", Image = "img/news/095/v095-3.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-2", Text = "Second update for the 0.9.5", Description = "With the last update, we have accidentally made a small bug that in some cases...", Image = "img/news/095/v095-2.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/095-1", Text = "First update for the 0.9.5", Description = "In this release you can see all the fixes for the v0.9.5.", Image = "img/news/095/v095-1.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-9", Text = "0.9.4 - patch 9 release notes", Description = "0.9.4.9 change log", Image = "img/news/094/v094-9.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Major releases", Url = "news/release-notes/095", Text = "Announcing Blazorise 0.9.5", Description = "Today, we are happy to announce the release of Blazorise 0.9.5. In this post...", Image = "img/news/095/v095.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-8", Text = "0.9.4 - patch 8 release notes", Description = "0.9.4.8 change log", Image = "img/news/094/v094-8.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-7", Text = "0.9.4 - patch 7 release notes", Description = "0.9.4.7 change log", Image = "img/news/094/v094-7.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-5", Text = "0.9.4 - patch 5 release notes", Description = "0.9.4.5 change log", Image = "img/news/094/v094-5.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-4", Text = "0.9.4 - patch 4 release notes", Description = "0.9.4.4 change log", Image = "img/news/094/v094-4.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-3", Text = "0.9.4 - patch 3 release notes", Description = "The time for another set of bug fixes is here. One of the most critical issues...", Image = "img/news/094/v094-3.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-2", Text = "0.9.4 - patch 2 release notes", Description = "0.9.4.2 change log", Image = "img/news/094/v094-2.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Maintenance", Url = "news/release-notes/094-1", Text = "0.9.4 - patch 1 release notes", Description = "0.9.4.1 change log", Image = "img/news/094/v094-1.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },

        new BlogEntry { Category = "Changes", Url = "news/blazorise-commercial-going-live", Text = "Blazorise Commercial going live", Description = "Since our last announcement about coming Blazorise licensing changes...", Image = "img/news/blazorise-commercial-live.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
        new BlogEntry { Category = "Changes", Url = "news/blazorise-license-changes", Text = "Changes to Blazorise License", Description = "I have been working on the Blazorise code-base for more than 2 years...", Image = "img/news/blazorise-license-change.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" },
    };
}